package br.com.jw.controle;


import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.sql.SQLException;

import br.com.jw.dao.UsuarioDao;
import br.com.jw.dao.VendaDao;
import br.com.jw.jdbc.Pool;
import br.com.jw.modelo.Usuario;
import br.com.jw.modelo.Venda;

public class ThreadVendas extends Thread{
	private Socket socket;
	boolean  aux=false;
    private Pool pool=new Pool();
    Venda venda = new Venda();
    VendaDao vendaDao = new VendaDao(pool);
	public ThreadVendas(Socket socket){
		this.socket=socket;
	}
	public void run(){
		
		
		try{
			DataInputStream in=new DataInputStream(socket.getInputStream());
			DataOutputStream out=new DataOutputStream(socket.getOutputStream());
			String modo=in.readUTF();
			
			
			if(modo.equals("salvarVendas")){
				
			venda.setVen_cli_id(in.readInt());
			venda.setVen_usu_id(in.readInt());
			venda.setVen_pro_id(in.readInt());
			venda.setVen_pro_qtde(in.readInt());
			
			
			int resultado = vendaDao.inserirVenda(venda);
			if(resultado > 0){
				out.writeBoolean(true);
			}else{
				out.writeBoolean(false);
			}
			
			out.writeUTF("true");
			out.close();
			in.close();
			socket.close();
			}
			else if(modo.equals("listarVendas")){
				VendaDao vendaDao=new VendaDao(pool);
				String dados="";
				for(Venda v:vendaDao.getVendas()){
					dados+=v.getVen_pro_id()+",";
					dados+=v.getVen_nomeCliente()+",";
					dados+=v.getVen_nomeProduto()+",";
					dados+=v.getVen_pro_qtde()+",";
					dados+=v.getVen_nomeUsuario()+",";
					
				}				
				out.writeUTF(dados);
			
				out.close();
				in.close();
				socket.close();
				}
			else if(modo.equals("excluirVendas")){
				venda.setVen_pro_id(in.readInt());
				venda.setVen_nomeCliente(in.readUTF());
				venda.setVen_nomeProduto(in.readUTF());
				venda.setVen_pro_qtde(in.readInt());
				venda.setVen_nomeUsuario(in.readUTF());
				
				
				if(vendaDao.excluirVenda(venda)){				
					out.writeBoolean(true);
				}else{
					out.writeBoolean(false);
				}				
				out.close();
				in.close();
				socket.close();
				}
			
			else if(modo.equals("listarVendaCliente")){
			    	
			    	int cli_id=in.readInt();
			    	String dados="";
					for(Venda v: vendaDao.listaVendaCliente(cli_id)){
						dados+=v.getVen_pro_id()+",";
						dados+=v.getVen_nomeCliente()+",";
						dados+=v.getVen_nomeProduto()+",";						
						dados+=v.getVen_pro_qtde()+",";
						dados+=v.getVen_nomeUsuario()+",";
						
					}				
					out.writeUTF(dados);
					out.writeUTF("Sucesso no envio de dados");
					}
	    	
				out.close();
				in.close();
				socket.close();
			    
	    	} catch (IOException e) {
				e.printStackTrace();
			} catch (ClassNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}    	
			
	}
	}
	

		

